package com.shycloud.mido.organ.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.shycloud.mido.organ.api.entity.StTask;

import com.shycloud.mido.organ.api.vo.StatisticalTaskVO;
import com.shycloud.mido.organ.api.vo.TaskDateVO;
import com.shycloud.mido.organ.api.vo.TaskListVO;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDateTime;
import java.util.List;

/**
 * <p>
 * 学生作业 Mapper 接口
 * </p>
 *
 * @author yyy
 * @date 2019-04-23
 */
public interface TaskMapper extends BaseMapper<StTask> {

	/**
	 * 根据作业日期获取学生列表
	 *
	 * @param studentId 学生ID
	 * @param taskDate  作业日期
	 * @return
	 */
	List<TaskListVO> selTask(@Param("studentId") String studentId, @Param("taskDate") String taskDate, @Param("teacherId") String teacherId);

	/**
	 * 当月学生的所有课业情况
	 *
	 * @param studentId 学生ID
	 * @param date      作业日期
	 * @return
	 */
	List<TaskDateVO> dateTask(@Param("studentId") String studentId, @Param("date") String date,@Param("teacherId") String teacherId);

	/**
	 * 学生当日作业情况 统计
	 *
	 * @param studentId 学生ID
	 * @param taskDate  日期
	 * @return
	 */
	StatisticalTaskVO statisticalTask(@Param("studentId") String studentId, @Param("taskDate") String taskDate,@Param("teacherId") String teacherId);

	/**
	 * 下发作业
	 *
	 * @param list 作业信息
	 * @return
	 */
	boolean saveTask(@Param("list") List<StTask> list);

	/**
	 * 删除Id
	 *
	 * @param id 作业ID
	 * @return
	 */
	boolean delTask(@Param("id") String id);

	/**
	 * 已点评作业列表
	 * @param page page
	 * @return List<TaskListVO>
	 */
	List<TaskListVO> taskCommentDoneList(Page page, @Param("studentId") String studentId, @Param("teacherId") String teacherId);

	/**
	 * 未点评作业列表
	 * @param page page
	 * @return List<TaskListVO>
	 */
	List<TaskListVO> taskCommentNoneList(Page page, @Param("studentId") String studentId, @Param("teacherId") String teacherId);

	/**
	 * 全部未点评作业列表
	 * @param studentId 学生id
	 * @param teacherId 教师id
	 * @return List<TaskListVO>
	 */
	List<TaskListVO> taskCommentNoneList(@Param("studentId") String studentId, @Param("teacherId") String teacherId);

	/**
	 * 全部未点评作业列表
	 * @param studentId 学生id
	 * @param teacherId 教师id
	 * @return List<TaskListVO>
	 */
	List<TaskListVO> taskCommentStatusList(@Param("studentId") String studentId, @Param("teacherId") String teacherId);

	/**
	 * 学生作业日期列表
	 * @param studentId
	 * @param date
	 * @param teacherId
	 * @return
	 */
	List<StTask> tasks  (@Param("studentId")  String studentId, @Param("date") LocalDateTime date,@Param("teacherId")  String teacherId);
}